/*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
* http://jqueryvalidation.org/
* Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}((function(t){t.extend(t.fn,{validate:function(e){if(this.length){var a=t.data(this[0],"validator");return a||(this.attr("novalidate","novalidate"),a=new t.validator(e,this[0]),t.data(this[0],"validator",a),a.settings.onsubmit&&(this.on("click.validate",":submit",(function(e){a.settings.submitHandler&&(a.submitButton=e.target),t(this).hasClass("cancel")&&(a.cancelSubmit=!0),void 0!==t(this).attr("formnovalidate")&&(a.cancelSubmit=!0)})),this.on("submit.validate",(function(e){function i(){var i,n;return!a.settings.submitHandler||(a.submitButton&&(i=t("").attr("name",a.submitButton.name).val(t(a.submitButton).val()).appendTo(a.currentForm)),n=a.settings.submitHandler.call(a,a.currentForm,e),a.submitButton&&i.remove(),void 0!==n&&n)}return a.settings.debug&&e.preventDefault(),a.cancelSubmit?(a.cancelSubmit=!1,i()):a.form()?a.pendingRequest?(a.formSubmitted=!0,!1):i():(a.focusInvalid(),!1)}))),a)}e&&e.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing.")},valid:function(){var e,a,i;return t(this[0]).is("form")?e=this.validate().form():(i=[],e=!0,a=t(this[0].form).validate(),this.each((function(){e=a.element(this)&&e,i=i.concat(a.errorList)})),a.errorList=i),e},rules:function(e,a){var i,n,r,s,o,l,d=this[0];if(e)switch(i=t.data(d.form,"validator").settings,n=i.rules,r=t.validator.staticRules(d),e){case"add":t.extend(r,t.validator.normalizeRule(a)),delete r.messages,n[d.name]=r,a.messages&&(i.messages[d.name]=t.extend(i.messages[d.name],a.messages));break;case"remove":return a?(l={},t.each(a.split(/\s/),(function(e,a){l[a]=r[a],delete r[a],"required"===a&&t(d).removeAttr("aria-required")})),l):(delete n[d.name],r)}return(s=t.validator.normalizeRules(t.extend({},t.validator.classRules(d),t.validator.attributeRules(d),t.validator.dataRules(d),t.validator.staticRules(d)),d)).required&&(o=s.required,delete s.required,s=t.extend({required:o},s),t(d).attr("aria-required","true")),s.remote&&(o=s.remote,delete s.remote,s=t.extend(s,{remote:o})),s}}),t.extend(t.expr[":"],{blank:function(e){return!t.trim(""+t(e).val())},filled:function(e){return!!t.trim(""+t(e).val())},unchecked:function(e){return!t(e).prop("checked")}}),t.validator=function(e,a){this.settings=t.extend(!0,{},t.validator.defaults,e),this.currentForm=a,this.init()},t.validator.format=function(e,a){return 1===arguments.length?function(){var a=t.makeArray(arguments);return a.unshift(e),t.validator.format.apply(this,a)}:(arguments.length>2&&a.constructor!==Array&&(a=t.makeArray(arguments).slice(1)),a.constructor!==Array&&(a=[a]),t.each(a,(function(t,a){e=e.replace(new RegExp("\\{"+t+"\\}","g"),(function(){return a}))})),e)},t.extend(t.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:t([]),errorLabelContainer:t([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(t){this.lastActive=t,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,t,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(t)))},onfocusout:function(t){this.checkable(t)||!(t.name in this.submitted)&&this.optional(t)||this.element(t)},onkeyup:function(e,a){9===a.which&&""===this.elementValue(e)||-1!==t.inArray(a.keyCode,[16,17,18,20,35,36,37,38,39,40,45,144,225])||(e.name in this.submitted||e===this.lastElement)&&this.element(e)},onclick:function(t){t.name in this.submitted?this.element(t):t.parentNode.name in this.submitted&&this.element(t.parentNode)},highlight:function(e,a,i){"radio"===e.type?this.findByName(e.name).addClass(a).removeClass(i):t(e).addClass(a).removeClass(i)},unhighlight:function(e,a,i){"radio"===e.type?this.findByName(e.name).removeClass(a).addClass(i):t(e).removeClass(a).addClass(i)}},setDefaults:function(e){t.extend(t.validator.defaults,e)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date ( ISO ).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",maxlength:t.validator.format("Please enter no more than {0} characters."),minlength:t.validator.format("Please enter at least {0} characters."),rangelength:t.validator.format("Please enter a value between {0} and {1} characters long."),range:t.validator.format("Please enter a value between {0} and {1}."),max:t.validator.format("Please enter a value less than or equal to {0}."),min:t.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:!1,prototype:{init:function(){function e(e){var a=t.data(this.form,"validator"),i="on"+e.type.replace(/^validate/,""),n=a.settings;n[i]&&!t(this).is(n.ignore)&&n[i].call(a,this,e)}this.labelContainer=t(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||t(this.currentForm),this.containers=t(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var a,i=this.groups={};t.each(this.settings.groups,(function(e,a){"string"==typeof a&&(a=a.split(/\s/)),t.each(a,(function(t,a){i[a]=e}))})),a=this.settings.rules,t.each(a,(function(e,i){a[e]=t.validator.normalizeRule(i)})),t(this.currentForm).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox']",e).on("click.validate","select, option, [type='radio'], [type='checkbox']",e),this.settings.invalidHandler&&t(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler),t(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){return this.checkForm(),t.extend(this.submitted,this.errorMap),this.invalid=t.extend({},this.errorMap),this.valid()||t(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var t=0,e=this.currentElements=this.elements();e[t];t++)this.check(e[t]);return this.valid()},element:function(e){var a=this.clean(e),i=this.validationTargetFor(a),n=!0;return this.lastElement=i,void 0===i?delete this.invalid[a.name]:(this.prepareElement(i),this.currentElements=t(i),(n=!1!==this.check(i))?delete this.invalid[i.name]:this.invalid[i.name]=!0),t(e).attr("aria-invalid",!n),this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),n},showErrors:function(e){if(e){for(var a in t.extend(this.errorMap,e),this.errorList=[],e)this.errorList.push({message:e[a],element:this.findByName(a)[0]});this.successList=t.grep(this.successList,(function(t){return!(t.name in e)}))}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){t.fn.resetForm&&t(this.currentForm).resetForm(),this.submitted={},this.lastElement=null,this.prepareForm(),this.hideErrors();var e,a=this.elements().removeData("previousValue").removeAttr("aria-invalid");if(this.settings.unhighlight)for(e=0;a[e];e++)this.settings.unhighlight.call(this,a[e],this.settings.errorClass,"");else a.removeClass(this.settings.errorClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(t){var e,a=0;for(e in t)a++;return a},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(t){t.not(this.containers).text(""),this.addWrapper(t).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{t(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(t){}},findLastActive:function(){var e=this.lastActive;return e&&1===t.grep(this.errorList,(function(t){return t.element.name===e.name})).length&&e},elements:function(){var e=this,a={};return t(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter((function(){return!this.name&&e.settings.debug&&window.console&&console.error("%o has no name assigned",this),!(this.name in a||!e.objectLength(t(this).rules()))&&(a[this.name]=!0,!0)}))},clean:function(e){return t(e)[0]},errors:function(){var e=this.settings.errorClass.split(" ").join(".");return t(this.settings.errorElement+"."+e,this.errorContext)},reset:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=t([]),this.toHide=t([]),this.currentElements=t([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(t){this.reset(),this.toHide=this.errorsFor(t)},elementValue:function(e){var a,i=t(e),n=e.type;return"radio"===n||"checkbox"===n?this.findByName(e.name).filter(":checked").val():"number"===n&&void 0!==e.validity?!e.validity.badInput&&i.val():"string"==typeof(a=i.val())?a.replace(/\r/g,""):a},check:function(e){e=this.validationTargetFor(this.clean(e));var a,i,n,r=t(e).rules(),s=t.map(r,(function(t,e){return e})).length,o=!1,l=this.elementValue(e);for(i in r){n={method:i,parameters:r[i]};try{if("dependency-mismatch"===(a=t.validator.methods[i].call(this,l,e,n.parameters))&&1===s){o=!0;continue}if(o=!1,"pending"===a)return void(this.toHide=this.toHide.not(this.errorsFor(e)));if(!a)return this.formatAndAdd(e,n),!1}catch(t){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+e.id+", check the '"+n.method+"' method.",t),t instanceof TypeError&&(t.message+=". Exception occurred when checking element "+e.id+", check the '"+n.method+"' method."),t}}if(!o)return this.objectLength(r)&&this.successList.push(e),!0},customDataMessage:function(e,a){return t(e).data("msg"+a.charAt(0).toUpperCase()+a.substring(1).toLowerCase())||t(e).data("msg")},customMessage:function(t,e){var a=this.settings.messages[t];return a&&(a.constructor===String?a:a[e])},findDefined:function(){for(var t=0;tWarning: No message defined for "+e.name+"")},formatAndAdd:function(e,a){var i=this.defaultMessage(e,a.method),n=/\$?\{(\d+)\}/g;"function"==typeof i?i=i.call(this,a.parameters,e):n.test(i)&&(i=t.validator.format(i.replace(n,"{$1}"),a.parameters)),this.errorList.push({message:i,element:e,method:a.method}),this.errorMap[e.name]=i,this.submitted[e.name]=i},addWrapper:function(t){return this.settings.wrapper&&(t=t.add(t.parent(this.settings.wrapper))),t},defaultShowErrors:function(){var t,e,a;for(t=0;this.errorList[t];t++)a=this.errorList[t],this.settings.highlight&&this.settings.highlight.call(this,a.element,this.settings.errorClass,this.settings.validClass),this.showLabel(a.element,a.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(t=0;this.successList[t];t++)this.showLabel(this.successList[t]);if(this.settings.unhighlight)for(t=0,e=this.validElements();e[t];t++)this.settings.unhighlight.call(this,e[t],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return t(this.errorList).map((function(){return this.element}))},showLabel:function(e,a){var i,n,r,s=this.errorsFor(e),o=this.idOrName(e),l=t(e).attr("aria-describedby");s.length?(s.removeClass(this.settings.validClass).addClass(this.settings.errorClass),s.html(a)):(i=s=t("<"+this.settings.errorElement+">").attr("id",o+"-error").addClass(this.settings.errorClass).html(a||""),this.settings.wrapper&&(i=s.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(i):this.settings.errorPlacement?this.settings.errorPlacement(i,t(e)):i.insertAfter(e),s.is("label")?s.attr("for",o):0===s.parents("label[for='"+o+"']").length&&(r=s.attr("id").replace(/(:|\.|\[|\]|\$)/g,"\\$1"),l?l.match(new RegExp("\\b"+r+"\\b"))||(l+=" "+r):l=r,t(e).attr("aria-describedby",l),(n=this.groups[e.name])&&t.each(this.groups,(function(e,a){a===n&&t("[name='"+e+"']",this.currentForm).attr("aria-describedby",s.attr("id"))})))),!a&&this.settings.success&&(s.text(""),"string"==typeof this.settings.success?s.addClass(this.settings.success):this.settings.success(s,e)),this.toShow=this.toShow.add(s)},errorsFor:function(e){var a=this.idOrName(e),i=t(e).attr("aria-describedby"),n="label[for='"+a+"'], label[for='"+a+"'] *";return i&&(n=n+", #"+i.replace(/\s+/g,", #")),this.errors().filter(n)},idOrName:function(t){return this.groups[t.name]||(this.checkable(t)?t.name:t.id||t.name)},validationTargetFor:function(e){return this.checkable(e)&&(e=this.findByName(e.name)),t(e).not(this.settings.ignore)[0]},checkable:function(t){return/radio|checkbox/i.test(t.type)},findByName:function(e){return t(this.currentForm).find("[name='"+e+"']")},getLength:function(e,a){switch(a.nodeName.toLowerCase()){case"select":return t("option:selected",a).length;case"input":if(this.checkable(a))return this.findByName(a.name).filter(":checked").length}return e.length},depend:function(t,e){return!this.dependTypes[typeof t]||this.dependTypes[typeof t](t,e)},dependTypes:{boolean:function(t){return t},string:function(e,a){return!!t(e,a.form).length},function:function(t,e){return t(e)}},optional:function(e){var a=this.elementValue(e);return!t.validator.methods.required.call(this,a,e)&&"dependency-mismatch"},startRequest:function(t){this.pending[t.name]||(this.pendingRequest++,this.pending[t.name]=!0)},stopRequest:function(e,a){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[e.name],a&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(t(this.currentForm).submit(),this.formSubmitted=!1):!a&&0===this.pendingRequest&&this.formSubmitted&&(t(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(e){return t.data(e,"previousValue")||t.data(e,"previousValue",{old:null,valid:!0,message:this.defaultMessage(e,"remote")})},destroy:function(){this.resetForm(),t(this.currentForm).off(".validate").removeData("validator")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(e,a){e.constructor===String?this.classRuleSettings[e]=a:t.extend(this.classRuleSettings,e)},classRules:function(e){var a={},i=t(e).attr("class");return i&&t.each(i.split(" "),(function(){this in t.validator.classRuleSettings&&t.extend(a,t.validator.classRuleSettings[this])})),a},normalizeAttributeRule:function(t,e,a,i){/min|max/.test(a)&&(null===e||/number|range|text/.test(e))&&(i=Number(i),isNaN(i)&&(i=void 0)),i||0===i?t[a]=i:e===a&&"range"!==e&&(t[a]=!0)},attributeRules:function(e){var a,i,n={},r=t(e),s=e.getAttribute("type");for(a in t.validator.methods)"required"===a?(""===(i=e.getAttribute(a))&&(i=!0),i=!!i):i=r.attr(a),this.normalizeAttributeRule(n,s,a,i);return n.maxlength&&/-1|2147483647|524288/.test(n.maxlength)&&delete n.maxlength,n},dataRules:function(e){var a,i,n={},r=t(e),s=e.getAttribute("type");for(a in t.validator.methods)i=r.data("rule"+a.charAt(0).toUpperCase()+a.substring(1).toLowerCase()),this.normalizeAttributeRule(n,s,a,i);return n},staticRules:function(e){var a={},i=t.data(e.form,"validator");return i.settings.rules&&(a=t.validator.normalizeRule(i.settings.rules[e.name])||{}),a},normalizeRules:function(e,a){return t.each(e,(function(i,n){if(!1!==n){if(n.param||n.depends){var r=!0;switch(typeof n.depends){case"string":r=!!t(n.depends,a.form).length;break;case"function":r=n.depends.call(a,a)}r?e[i]=void 0===n.param||n.param:delete e[i]}}else delete e[i]})),t.each(e,(function(i,n){e[i]=t.isFunction(n)?n(a):n})),t.each(["minlength","maxlength"],(function(){e[this]&&(e[this]=Number(e[this]))})),t.each(["rangelength","range"],(function(){var a;e[this]&&(t.isArray(e[this])?e[this]=[Number(e[this][0]),Number(e[this][1])]:"string"==typeof e[this]&&(a=e[this].replace(/[\[\]]/g,"").split(/[\s,]+/),e[this]=[Number(a[0]),Number(a[1])]))})),t.validator.autoCreateRanges&&(null!=e.min&&null!=e.max&&(e.range=[e.min,e.max],delete e.min,delete e.max),null!=e.minlength&&null!=e.maxlength&&(e.rangelength=[e.minlength,e.maxlength],delete e.minlength,delete e.maxlength)),e},normalizeRule:function(e){if("string"==typeof e){var a={};t.each(e.split(/\s/),(function(){a[this]=!0})),e=a}return e},addMethod:function(e,a,i){t.validator.methods[e]=a,t.validator.messages[e]=void 0!==i?i:t.validator.messages[e],a.length<3&&t.validator.addClassRules(e,t.validator.normalizeRule(e))},methods:{required:function(e,a,i){if(!this.depend(i,a))return"dependency-mismatch";if("select"===a.nodeName.toLowerCase()){var n=t(a).val();return n&&n.length>0}return this.checkable(a)?this.getLength(e,a)>0:e.length>0},email:function(t,e){return this.optional(e)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(t)},url:function(t,e){return this.optional(e)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(t)},date:function(t,e){return this.optional(e)||!/Invalid|NaN/.test(new Date(t).toString())},dateISO:function(t,e){return this.optional(e)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(t)},number:function(t,e){return this.optional(e)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(t)},digits:function(t,e){return this.optional(e)||/^\d+$/.test(t)},creditcard:function(t,e){if(this.optional(e))return"dependency-mismatch";if(/[^0-9 \-]+/.test(t))return!1;var a,i,n=0,r=0,s=!1;if((t=t.replace(/\D/g,"")).length<13||t.length>19)return!1;for(a=t.length-1;a>=0;a--)i=t.charAt(a),r=parseInt(i,10),s&&(r*=2)>9&&(r-=9),n+=r,s=!s;return n%10==0},minlength:function(e,a,i){var n=t.isArray(e)?e.length:this.getLength(e,a);return this.optional(a)||n>=i},maxlength:function(e,a,i){var n=t.isArray(e)?e.length:this.getLength(e,a);return this.optional(a)||i>=n},rangelength:function(e,a,i){var n=t.isArray(e)?e.length:this.getLength(e,a);return this.optional(a)||n>=i[0]&&n<=i[1]},min:function(t,e,a){return this.optional(e)||t>=a},max:function(t,e,a){return this.optional(e)||a>=t},range:function(t,e,a){return this.optional(e)||t>=a[0]&&t<=a[1]},equalTo:function(e,a,i){var n=t(i);return this.settings.onfocusout&&n.off(".validate-equalTo").on("blur.validate-equalTo",(function(){t(a).valid()})),e===n.val()},remote:function(e,a,i){if(this.optional(a))return"dependency-mismatch";var n,r,s=this.previousValue(a);return this.settings.messages[a.name]||(this.settings.messages[a.name]={}),s.originalMessage=this.settings.messages[a.name].remote,this.settings.messages[a.name].remote=s.message,i="string"==typeof i&&{url:i}||i,s.old===e?s.valid:(s.old=e,n=this,this.startRequest(a),(r={})[a.name]=e,t.ajax(t.extend(!0,{mode:"abort",port:"validate"+a.name,dataType:"json",data:r,context:n.currentForm,success:function(i){var r,o,l,d=!0===i||"true"===i;n.settings.messages[a.name].remote=s.originalMessage,d?(l=n.formSubmitted,n.prepareElement(a),n.formSubmitted=l,n.successList.push(a),delete n.invalid[a.name],n.showErrors()):(r={},o=i||n.defaultMessage(a,"remote"),r[a.name]=s.message=t.isFunction(o)?o(e):o,n.invalid[a.name]=!0,n.showErrors(r)),s.valid=d,n.stopRequest(a,d)}},i)),"pending")}}});var e,a={};t.ajaxPrefilter?t.ajaxPrefilter((function(t,e,i){var n=t.port;"abort"===t.mode&&(a[n]&&a[n].abort(),a[n]=i)})):(e=t.ajax,t.ajax=function(i){var n=("mode"in i?i:t.ajaxSettings).mode,r=("port"in i?i:t.ajaxSettings).port;return"abort"===n?(a[r]&&a[r].abort(),a[r]=e.apply(this,arguments),a[r]):e.apply(this,arguments)})})),function(t){function e(t,e,a){t.rules[e]=a,t.message&&(t.messages[e]=t.message)}function a(t){return t.replace(/([!"#$%&'()*+,./:;<=>?@\[\\\]^`{|}~])/g,"\\$1")}function i(t){return t.substr(0,t.lastIndexOf(".")+1)}function n(t,e){return 0===t.indexOf("*.")&&(t=t.replace("*.",e)),t}function r(e,i){var n=t(this).find("[data-valmsg-for='"+a(i[0].name)+"']"),r=n.attr("data-valmsg-replace"),s=r?!1!==t.parseJSON(r):null;n.removeClass("field-validation-valid").addClass("field-validation-error"),e.data("unobtrusiveContainer",n),s?(n.empty(),e.removeClass("input-validation-error").appendTo(n)):e.hide()}function s(e,a){var i=t(this).find("[data-valmsg-summary=true]"),n=i.find("ul");n&&n.length&&a.errorList.length&&(n.empty(),i.addClass("validation-summary-errors").removeClass("validation-summary-valid"),t.each(a.errorList,(function(){t("").html(this.message).appendTo(n)})))}function o(e){var a=e.data("unobtrusiveContainer");if(a){var i=a.attr("data-valmsg-replace"),n=i?t.parseJSON(i):null;a.addClass("field-validation-valid").removeClass("field-validation-error"),e.removeData("unobtrusiveContainer"),n&&a.empty()}}function l(e){var a=t(this),i="__jquery_unobtrusive_validation_form_reset";if(!a.data(i)){a.data(i,!0);try{a.data("validator").resetForm()}finally{a.removeData(i)}a.find(".validation-summary-errors").addClass("validation-summary-valid").removeClass("validation-summary-errors"),a.find(".field-validation-error").addClass("field-validation-valid").removeClass("field-validation-error").removeData("unobtrusiveContainer").find(">*").removeData("unobtrusiveContainer")}}function d(e){var a=t(e),i=a.data(c),n=t.proxy(l,e),d=h.unobtrusive.options||{},u=function(a,i){var n=d[a];n&&t.isFunction(n)&&n.apply(e,i)};return i||(i={options:{errorClass:d.errorClass||"input-validation-error",errorElement:d.errorElement||"span",errorPlacement:function(){r.apply(e,arguments),u("errorPlacement",arguments)},invalidHandler:function(){s.apply(e,arguments),u("invalidHandler",arguments)},messages:{},rules:{},success:function(){o.apply(e,arguments),u("success",arguments)}},attachValidation:function(){a.off("reset."+c,n).on("reset."+c,n).validate(this.options)},validate:function(){return a.validate(),a.valid()}},a.data(c,i)),i}var u,h=t.validator,c="unobtrusiveValidation";h.unobtrusive={adapters:[],parseElement:function(e,a){var i,n,r,s=t(e),o=s.parents("form")[0];o&&((i=d(o)).options.rules[e.name]=n={},i.options.messages[e.name]=r={},t.each(this.adapters,(function(){var a="data-val-"+this.name,i=s.attr(a),l={};void 0!==i&&(a+="-",t.each(this.params,(function(){l[this]=s.attr(a+this)})),this.adapt({element:e,form:o,message:i,params:l,rules:n,messages:r}))})),t.extend(n,{__dummy__:!0}),a||i.attachValidation())},parse:function(e){var a=t(e),i=a.parents().addBack().filter("form").add(a.find("form")).has("[data-val=true]");a.find("[data-val=true]").each((function(){h.unobtrusive.parseElement(this,!0)})),i.each((function(){var t=d(this);t&&t.attachValidation()}))}},(u=h.unobtrusive.adapters).add=function(t,e,a){return a||(a=e,e=[]),this.push({name:t,params:e,adapt:a}),this},u.addBool=function(t,a){return this.add(t,(function(i){e(i,a||t,!0)}))},u.addMinMax=function(t,a,i,n,r,s){return this.add(t,[r||"min",s||"max"],(function(t){var r=t.params.min,s=t.params.max;r&&s?e(t,n,[r,s]):r?e(t,a,r):s&&e(t,i,s)}))},u.addSingleVal=function(t,a,i){return this.add(t,[a||"val"],(function(n){e(n,i||t,n.params[a])}))},h.addMethod("__dummy__",(function(t,e,a){return!0})),h.addMethod("regex",(function(t,e,a){var i;return!!this.optional(e)||(i=new RegExp(a).exec(t))&&0===i.index&&i[0].length===t.length})),h.addMethod("nonalphamin",(function(t,e,a){var i;return a&&(i=(i=t.match(/\W/g))&&i.length>=a),i})),h.methods.extension?(u.addSingleVal("accept","mimtype"),u.addSingleVal("extension","extension")):u.addSingleVal("extension","extension","accept"),u.addSingleVal("regex","pattern"),u.addBool("creditcard").addBool("date").addBool("digits").addBool("email").addBool("number").addBool("url"),u.addMinMax("length","minlength","maxlength","rangelength").addMinMax("range","min","max","range"),u.addMinMax("minlength","minlength").addMinMax("maxlength","minlength","maxlength"),u.add("equalto",["other"],(function(r){var s=i(r.element.name),o=n(r.params.other,s);e(r,"equalTo",t(r.form).find(":input").filter("[name='"+a(o)+"']")[0])})),u.add("required",(function(t){("INPUT"!==t.element.tagName.toUpperCase()||"CHECKBOX"!==t.element.type.toUpperCase())&&e(t,"required",!0)})),u.add("remote",["url","type","additionalfields"],(function(r){var s={url:r.params.url,type:r.params.type||"GET",data:{}},o=i(r.element.name);t.each(function(t){return t.replace(/^\s+|\s+$/g,"").split(/\s*,\s*/g)}(r.params.additionalfields||r.element.name),(function(e,i){var l=n(i,o);s.data[l]=function(){var e=t(r.form).find(":input").filter("[name='"+a(l)+"']");return e.is(":checkbox")?e.filter(":checked").val()||e.filter(":hidden").val()||"":e.is(":radio")?e.filter(":checked").val()||"":e.val()}})),e(r,"remote",s)})),u.add("password",["min","nonalphamin","regex"],(function(t){t.params.min&&e(t,"minlength",t.params.min),t.params.nonalphamin&&e(t,"nonalphamin",t.params.nonalphamin),t.params.regex&&e(t,"regex",t.params.regex)})),t((function(){h.unobtrusive.parse(document)}))}(jQuery),function(t){var e="unobtrusiveAjaxClick",a="unobtrusiveAjaxClickTarget";function i(t,e){for(var a=window,i=(t||"").split(".");a&&i.length;)a=a[i.shift()];return"function"==typeof a?a:(e.push(t),Function.constructor.apply(null,e))}function n(t){return"GET"===t||"POST"===t}function r(t,e){n(e)||t.setRequestHeader("X-HTTP-Method-Override",e)}function s(e,a,i){var n;-1===i.indexOf("application/x-javascript")&&(n=(e.getAttribute("data-ajax-mode")||"").toUpperCase(),t(e.getAttribute("data-ajax-update")).each((function(e,i){var r;switch(n){case"BEFORE":r=i.firstChild,t("").html(a).contents().each((function(){i.insertBefore(this,r)}));break;case"AFTER":t("").html(a).contents().each((function(){i.appendChild(this)}));break;case"REPLACE-WITH":t(i).replaceWith(a);break;default:t(i).html(a)}})))}function o(e,a){var o,l,d,u;(o=e.getAttribute("data-ajax-confirm"))&&!window.confirm(o)||(l=t(e.getAttribute("data-ajax-loading")),u=parseInt(e.getAttribute("data-ajax-loading-duration"),10)||0,t.extend(a,{type:e.getAttribute("data-ajax-method")||void 0,url:e.getAttribute("data-ajax-url")||void 0,cache:"true"===(e.getAttribute("data-ajax-cache")||"").toLowerCase(),beforeSend:function(t){var a;return r(t,d),!1!==(a=i(e.getAttribute("data-ajax-begin"),["xhr"]).apply(e,arguments))&&l.show(u),a},complete:function(){l.hide(u),i(e.getAttribute("data-ajax-complete"),["xhr","status"]).apply(e,arguments)},success:function(t,a,n){s(e,t,n.getResponseHeader("Content-Type")||"text/html"),i(e.getAttribute("data-ajax-success"),["data","status","xhr"]).apply(e,arguments)},error:function(){i(e.getAttribute("data-ajax-failure"),["xhr","status","error"]).apply(e,arguments)}}),a.data.push({name:"X-Requested-With",value:"XMLHttpRequest"}),n(d=a.type.toUpperCase())||(a.type="POST",a.data.push({name:"X-HTTP-Method-Override",value:d})),t.ajax(a))}t(document).on("click","a[data-ajax=true]",(function(t){t.preventDefault(),o(this,{url:this.href,type:"GET",data:[]})})),t(document).on("click","form[data-ajax=true] input[type=image]",(function(a){var i=a.target.name,n=t(a.target),r=t(n.parents("form")[0]),s=n.offset();r.data(e,[{name:i+".x",value:Math.round(a.pageX-s.left)},{name:i+".y",value:Math.round(a.pageY-s.top)}]),setTimeout((function(){r.removeData(e)}),0)})),t(document).on("click","form[data-ajax=true] :submit",(function(i){var n=i.currentTarget.name,r=t(i.target),s=t(r.parents("form")[0]);s.data(e,n?[{name:n,value:i.currentTarget.value}]:[]),s.data(a,r),setTimeout((function(){s.removeData(e),s.removeData(a)}),0)})),t(document).on("submit","form[data-ajax=true]",(function(i){var n,r=t(this).data(e)||[],s=t(this).data(a),l=s&&s.hasClass("cancel");(i.preventDefault(),l||(!(n=t(this).data("unobtrusiveValidation"))||!n.validate||n.validate()))&&o(this,{url:this.action,type:this.method||"GET",data:r.concat(t(this).serializeArray())})}))}(jQuery),$.validator.setDefaults({ignore:""});var defaultRangeValidator=$.validator.methods.range;$.validator.methods.range=function(t,e,a){return"checkbox"===e.type?e.checked:defaultRangeValidator.call(this,t,e,a)};var defaultRangeLengthValidator=$.validator.methods.rangelength;$.validator.methods.rangelength=function(t,e,a){return defaultRangeLengthValidator.call(this,t.trim().replace(/\s/g,""),e,a)};var defaultMinLengthValidator=$.validator.methods.minlength;$.validator.methods.minlength=function(t,e,a){return defaultMinLengthValidator.call(this,t.trim().replace(/\s/g,""),e,a)};